// 
// Bachelor of Software Engineering
// Media Design School
// Auckland
// New Zealand
//
// (c) 2005 - 2014 Media Design School
//
// File Name	: AlienComponent.h
// Desrciption	: CAlienComponent declaration file.
// Author		: Hayden Asplet.
// Mail			: hayden.asplet@mediadesignschool.com
//

#pragma once

#ifndef __ALIENCOMPONENT_H__
#define __ALIENCOMPONENT_H__

// Library Includes

// Local Includes
#include "SpaceInvadersObjectFactory.h"

class CAlienComponent : public CObjectComponent {
	// Member Functions
public:
	CAlienComponent();
	virtual ~CAlienComponent();

	virtual bool VInitialize(TiXmlElement* _pXmlData);
	virtual void VPostInitialize();
	virtual void VUpdate(float _fDeltaTime);

	void FireBullet();

	// Accessors.
	int GetWorth() const;
	void SetWorth(int _iWorth);
protected:
private:

	// Member Variables
public:
protected:
private:
	int m_iWorth;	// The amount of points the player will recieve when destroying this alien.
	float m_fInitialBulletVelocity;	// The velocity of the bullet when it is fired.
	float m_fBulletAcceleration;	// The acceleration of the bullet.
};

TStrongObjectComponentPtr CreateAlienComponent();


#endif